﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;

namespace rehot
{
    public interface IHotDLL : IDisposable
    {
        public string Id { get; }
        public Assembly SystemAssembly { get; }
        public HotType FindType(string _name, string _namespace = null);
        public Stream FindResource(string _filename);
        public IEnumerable<HotAttribute> FindAttributes();
        public HotAttribute FindAttribute(string name);
        public HotAttribute FindAttributeById(string id);
        public string FindAttributeId(string name);
        public IEnumerable<string> FindAttributesId();
        public Stream FindResourceById(string id);
        public IEnumerable<string> FindResourceIds(string _filename);
        public string FindResourceId(string _filename);
        public HotType FindTypeById(string id);
        public string FindTypeId(string _name, string _namespace = null);
        public IEnumerable<string> FindTypesIdByInterface(string interface_name);
        public IEnumerable<string> FindTypesIdByAttribute(HotType attr_type);
    }
}
